package com.lap.framework.tools;

import com.lap.framework.enums.BaseEnum;
import lombok.experimental.UtilityClass;

import java.util.Objects;

@UtilityClass
public class EnumUtil {

  /**
   * 创建枚举，不存在返回空，后续需求是否处理异常
   *
   * @param enumClass 枚举类
   * @param code 编码
   * @param <E> 枚举类型
   * @param <T> 枚举返回类型
   * @return 枚举
   */
  public static <E extends Enum<E> & BaseEnum<T>, T> E fromCode(Class<E> enumClass, T code) {
    for (E e : enumClass.getEnumConstants()) {
      if (Objects.equals(e.getCode(), code)) return e;
    }
    return null;
  }
}
